﻿namespace OverStore
{
    /// <summary>
    /// Define instance state regarding current session.
    /// </summary>
    public enum InstanceState
    {
        /// <summary>
        /// Instance is not touched by session before.
        /// </summary>
        Foreign,

        /// <summary>
        /// Instance is added to session.
        /// </summary>
        Added,

        /// <summary>
        /// Instance is registered in current session.
        /// </summary>
        Existing,

        /// <summary>
        /// Instance marked as deleted.
        /// </summary>
        MarkedAsDeleted,

        /// <summary>
        /// Instance registered in session, but does not exist in storage, 
        /// and should not be saved into storage. It may causes when new instance 
        /// added to session and then marks as deleted.
        /// </summary>
        AddedThenDeleted
    }
}